package lol.clann.minecraft.springboot.api.bukkit.utils;

import lol.clann.minecraft.springboot.api.bukkit.model.EventType;
import org.bukkit.event.Event;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.plugin.EventExecutor;
import org.bukkit.plugin.RegisteredListener;

import java.util.List;
import java.util.Map;

/**
 *
 * @author pyz
 * @date 2019/5/21 11:09 PM
 */
public interface EventUtils {

    Map<String, EventType> getEventTypeNameMap();

    Map<Class, EventType> getEventTypeClassMap();

    List<EventType> getEventTypes();

    RegisteredListener registerListener(Class<? extends Event> eventClass, Listener handle, EventPriority priority, boolean ignoreCancelled, EventExecutor executor);

    void unregister(Class<? extends Event> eventClass, RegisteredListener listener);
}
